<html>
<head>
<meta http-equiv="Content-Type" content="text/html" />
<title>Simd Library Release Notes (2022)</title>
</head>
<body> <center><table width=1024><tr><td>
<a id="HOME"><a>
<center>
<img width="200" height="100" src="logo.png">
<h1>Simd Library Release Notes (2022).</h1>
<a href="index.html">Home</a> |
<a href="2021.html">Release Notes</a> | 
<a href="download.html">Download</a> | 
<a href="help/index.html">Documentation</a> | 
<a href="http://github.com/ermig1979/Simd/issues">Issues</a> | 
<a href="http://github.com/ermig1979/Simd" target="_top">GitHub</a> 
</center>
<hr/> 
</td></tr><tr><td>

<center>
 <a href="2022.html">2022</a> |
 <a href="2021.html">2021</a> |
 <a href="2020.html">2020</a> |
 <a href="2019.html">2019</a> |
 <a href="2018.html">2018</a> |
 <a href="2017.html">2017</a> |
 <a href="2016.html">2016</a> |
 <a href="2015.html">2015</a> |
 <a href="2014.html">2014</a> |
 <a href="2013.html">2013</a>
</center>

<hr/>

<h3 id="R116">August X, 2022 (version X.X.116)</h3> 
<h4>Algorithms</h4>
<h5>Improving</h5>
<ul>
 <li>AVX-512BW optimizations of AMX tile emulation.</li>
 <li>AMX optimizations of class SynetConvolution32fBf16Nhwc.</li>
 <li>AMX optimizations of class SynetMergedConvolution32fBf16Cdc.</li>
 <li>AMX optimizations of class SynetMergedConvolution32fBf16Cd.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>GCC linker error when SIMD_AMX_EMULATE macro is switched on.</li>
 <li>Error in SSE4.1, AVX2, AVX-512BW, AMX optimizations of class SynetConvolution32fBf16Nhwc.</li>
 <li>Wrong assert in SSE4.1 and AVX-512BW optimizations of class ResizerNearest.</li>
 <li>Error in AVX optimizations of class SynetMergedConvolution32fCdc.</li>
 <li>Error in Base implementation, SSE4.1, AVX2, AVX-512BW, AVX-512BF16, AMX optimizations of class SynetMergedConvolution32fBf16Cdc.</li>
 <li>External buffer reading overflow in class SynetMergedConvolution32fBf16Cdc.</li>
 <li>External buffer reading overflow in class SynetMergedConvolution32fBf16Cd.</li>
 <li>External buffer reading overflow in class SynetMergedConvolution32fBf16Dc.</li>
</ul>

<h4>Infrastructure</h4>
<h5>New features</h5>
<ul>
 <li>Cmake parameter SIMD_AMX_EMULATE.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/>
<h3 id="R115">July 1, 2022 (version 5.0.115)</h3> 
<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>Base implementation, SSE4.1, AVX2, AVX-512BW, AVX-512BF16, AMX optimizations of class SynetMergedConvolution32fBf16Cdc.</li>
 <li>Base implementation, SSE4.1, AVX2, AVX-512BW, AVX-512BF16, AMX optimizations of class SynetMergedConvolution32fBf16Cd.</li>
 <li>Base implementation, SSE4.1, AVX2, AVX-512BW, AVX-512BF16, AMX optimizations of class SynetMergedConvolution32fBf16Dc.</li>
 <li>AVX-512BF16 extension support.</li>
 <li>AVX-512BF16 optimizations of function Float32ToBFloat16.</li>
 <li>AVX-512BF16, AMX optimizations of class SynetConvolution32fBf16Nhwc.</li>
 <li>AMX extension support.</li>
 <li>Support of 3D pooling in Base implementation, SSE4.1, AVX2, AVX-512BW optimizations of function SynetPoolingMax32f.</li>
</ul>
<h5>Improving</h5>
<ul>
 <li>AVX-512BW optimizations of function Fill32f.</li>
</ul>
<h5>Renaming</h5>
<ul>
 <li>Rename function SynetPoolingForwardAverage to SynetPoolingAverage.</li>
 <li>Rename function SynetPoolingForwardMax32f to SynetPoolingMax32f.</li>
 <li>Rename function SynetPoolingForwardMax8u to SynetPoolingMax8u.</li>
</ul>
<h5>Replacing</h5>
<ul>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SvmSumLinear.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function Fill32f.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class ResizerNearest.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class ResizerFloatBilinear.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SquaredDifferenceSum32f.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SquaredDifferenceKahanSum32f.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralConvolutionForward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddConvolution2x2Forward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddConvolution2x2Backward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddConvolution2x2Sum.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddConvolution3x3Forward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddConvolution3x3Backward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddConvolution3x3Sum.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddConvolution4x4Forward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddConvolution4x4Backward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddConvolution4x4Sum.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddConvolution5x5Forward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddConvolution5x5Backward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddConvolution5x5Sum.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralProductSum.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAdaptiveGradientUpdate.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralPooling1x1Max3x3.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralPooling2x2Max2x2.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralPooling2x2Max3x3.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralUpdateWeights.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddValue.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddVector.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralAddVectorMultipliedByValue.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralRoughSigmoid.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralRoughSigmoid2.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralDerivativeSigmoid.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralRoughTanh.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralDerivativeTanh.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralDerivativeRelu.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function NeuralPow.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class SynetConvolution32fGemmNN.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class SynetConvolution32fGemmNT.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class SynetConvolution32fWinograd.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class SynetDeconvolution32fGemmNN.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class SynetDeconvolution32fNhwcDirect2x2.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetDeconvolution32fInit.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class SynetInnerProduct32fGemm.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class SynetInnerProduct32fProd.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetInnerProduct32fInit.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function ConvolutionBiasAndActivation.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetReorderImage.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetReorderFilter.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function Gemm32fNN.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function Gemm32fNT.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetFusedLayerForward0.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetFusedLayerForward1.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetFusedLayerForward2.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetFusedLayerForward3.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetFusedLayerForward4.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetFusedLayerForward8.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetFusedLayerForward9.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel1x3Block1x4SetFilter.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel1x3Block1x4SetInput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel1x3Block1x4SetOutput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel1x5Block1x4SetFilter.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel1x5Block1x4SetInput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel1x5Block1x4SetOutput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel2x2Block2x2SetFilter.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel2x2Block2x2SetInput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel2x2Block2x2SetOutput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel2x2Block4x4SetFilter.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel2x2Block4x4SetInput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel2x2Block4x4SetOutput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel3x3Block2x2SetFilter.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel3x3Block2x2SetInput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel3x3Block2x2SetOutput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel3x3Block3x3SetFilter.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel3x3Block3x3SetInput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel3x3Block3x3SetOutput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel3x3Block4x4SetFilter.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel3x3Block4x4SetInput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function WinogradKernel3x3Block4x4SetOutput.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetElu32f.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetHardSigmoid32f.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetHswish32f.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetMish32f.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetPreluLayerForward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetRelu32f.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetRestrictRange32f.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetSigmoid32f.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetSoftplus32f.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetSwish32f.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetTanh32f.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetScaleLayerForward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetPoolingAverage.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetAddBias.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetEltwiseLayerForward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetInnerProductLayerForward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetLrnLayerCrossChannels.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetShuffleLayerForward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetSoftmaxLayerForward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for function SynetUnaryOperation32fLayerForward.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class SynetConvolution32fDirectNchw.</li> 
 <li>Replace AVX-512F optimizations to AVX-512BW for class SynetConvolution32fDirectNhwc.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class SynetConvolution32fNhwcDirect.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class SynetMergedConvolution32fCdc.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class SynetMergedConvolution32fCd.</li>
 <li>Replace AVX-512F optimizations to AVX-512BW for class SynetMergedConvolution32fDc.</li>
</ul>

<h4>Infrastructure</h4>
<h5>New features</h5>
<ul>
 <li>Project Avx512bf16 for Microsoft Visual Studio 2022.</li>
 <li>Project Avx512bf16 for Microsoft Visual Studio 2019.</li>
 <li>Project Amx for Microsoft Visual Studio 2022.</li>
 <li>Project Amx for Microsoft Visual Studio 2019.</li>
</ul>
<h5>Removing</h5>
<ul>
 <li>Project Avx512f for Microsoft Visual Studio 2022.</li>
 <li>Project Avx512f for Microsoft Visual Studio 2019.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/>
<h3 id="R114">June 1, 2022 (version 4.10.114)</h3> 
<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>Base implementation, SSE4.1, AVX2, AVX-512BW, NEON optimizations of function Yuv420pToUyvy422.</li>
 <li>AVX-512BW, NEON optimizations of function Uyvy422ToYuv420p.</li>
 <li>AVX-512BW, NEON optimizations of function Uyvy422ToBgr.</li>
 <li>Base implementation, SSE4.1, AVX2, AVX-512BW optimizations of function Float32ToBFloat16.</li>
 <li>Base implementation, SSE4.1, AVX2, AVX-512BW optimizations of function BFloat16ToFloat32.</li>
 <li>Base implementation, SSE4.1, AVX2, AVX-512BW optimizations of function BFloat16ToFloat32.</li>
 <li>Base implementation of class SynetConvolution32fBf16Gemm.</li>
 <li>Base implementation, SSE4.1, AVX2, AVX-512BW optimizations of class SynetConvolution32fBf16Nhwc.</li>
 <li>Base implementation of class SynetMergedConvolution32fBf16.</li>
</ul>
<h5>Removing</h5>
<ul>
 <li>Remove external GEMM function parameter from function SynetConvolution32fInit.</li>
 <li>Remove external GEMM function parameter from function SynetDeconvolution32fInit.</li>
</ul>

<h4>Test framework</h4>
<h5>New features</h5>
<ul>
 <li>Tests for verifying functionality of function Yuv420pToUyvy422.</li>
 <li>Tests for verifying functionality of function Float32ToBFloat16.</li>
 <li>Tests for verifying functionality of function BFloat16ToFloat32.</li>
</ul>

<h4>Infrastructure</h4>
<h5>New features</h5>
<ul>
 <li>Project files for Microsoft Visual Studio 2022.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/>
<h3 id="R113">May 4, 2022 (version 4.9.113)</h3> 
<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>SSE4.1, AVX2, AVX-512BW optimizations of class ResizerByteArea2x2.</li>
</ul>
<h5>Improving</h5>
<ul>
 <li>Base implementation of class ResizerByteArea1x1.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>Error in Base implementation of class ResizerByteArea2x2.</li>
 <li>Error in AVX optimizations of class SynetConvolution32fDirectNchw.</li>
</ul>
<h5>Removing</h5>
<ul>
 <li>SimdSynetCompatibilityFloatZero flag.</li>
</ul>

<h4>Infrastructure</h4>
<h5>New features</h5>
<ul>
 <li>Git commit ID info in function SimdVersion.</li>
 <li>Git branch name in function SimdVersion.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/>
<h3 id="R112">April 1, 2022 (version 4.9.112)</h3> 
<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>NEON optimizations of function Base64Encode.</li>
 <li>NEON optimizations of ImageJpegSaver class.</li>
 <li>NEON optimizations of function Yuv420pSaveAsJpegToMemory.</li>
 <li>NEON optimizations of function Nv12SaveAsJpegToMemory.</li>
 <li>Owner method in View structure.</li>
 <li>Owner method in Frame structure.</li>
 <li>Capture method in View structure.</li>
 <li>Capture method in Frame structure.</li>
 <li>Base implementation of class ResizerByteArea2x2.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>MSVS compiler error in AVX-512BW optimizations of function Yuv420pToBgraV2.</li>
 <li>Error in AVX2 optimizations of function BgraToRgb.</li>
 <li>Error (aligned reading of unaligned memory) in SSE4.1, AVX2, AVX-512BW optimizations of function InterleaveBgra.</li>
 <li>Error in function View::ToOcv.</li>
 <li>Error in View copy constructor (from OpenCV Mat).</li>
</ul>

<h4>Test framework</h4>
<h5>Bug fixing</h5>
<ul>
 <li>Wrong default ROOT_PATH for Linux.</li>
 <li>Error in test SynetConvert32fTo8uAutoTest.</li>
 <li>Special test ResizeYuv420pSpecialTest.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/>
<h3 id="R111">March 3, 2022 (version 4.9.111)</h3> 
<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>AVX2, AVX-512BW optimizations of ResizerByteBicubic class.</li>
 <li>SSE4.1, AVX2, AVX-512BW, NEON optimizations of function Base64Decode.</li>
 <li>NEON optimizations of function SynetSwish32f.</li>
 <li>Swish activation function to NEON optimizations of SynetConvolution32f framework.</li>
 <li>Swish activation function to NEON optimizations of SynetDeconvolution32f framework.</li>
 <li>Swish activation function to NEON optimizations of SynetMergedConvolution32f framework.</li>
 <li>Swish activation function to NEON optimizations of SynetConvolution8i framework.</li>
 <li>Swish activation function to NEON optimizations of SynetMergedConvolution8i framework.</li>
 <li>NEON optimizations of function Yuv444pToBgraV2.</li>
 <li>SSE2, AVX2, AVX-512BW, NEON optimizations of function Yuv420pToBgraV2.</li>
</ul>
<h5>Improving</h5>
<ul>
 <li>SSE4.1 optimizations of ResizerByteBicubic class.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>Compiler error in NEON optimizations of function AlphaUnpremultiply.</li>
 <li>MSVS compiler warnings in SSE4.1, AVX2, AVX-512BW optimizations of function TransformImage.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/>
<h3 id="R110">February 1, 2022 (version 4.9.110)</h3> 
<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>Base implementation, SSE4.1 optimizations of ResizerByteBicubic class.</li>
 <li>Base implementation of function BgraToYuv444pV2.</li>
 <li>Base implementation, SSE4.1, AVX2, AVX-512BW optimizations of function Nv12SaveAsJpegToMemory.</li>
 <li>Base implementation, SSE4.1, AVX2, AVX-512BW optimizations of function Yuv420pSaveAsJpegToMemory.</li>
 <li>Base implementation of function BgraToYuv420pV2.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>Error in SSE4.1, AVX2, AVX-512BW optimizations of function BgraToRgba.</li>
 <li>Error in SSE4.1, AVX2 optimizations of function BgraToBgr.</li>
 <li>Error in SSE4.1, AVX2 optimizations of function BgraToRgb.</li>
 <li>Error in Base implementation, SSE4.1, AVX2, AVX-512BW, NEON optimizations of function AlphaUnpremultiply.</li>
</ul>

<h4>Test framework</h4>
<h5>New features</h5>
<ul>
 <li>Tests for verifying functionality of function BgraToYuv444pV2.</li>
 <li>Tests for verifying functionality of function Nv12SaveAsJpegToMemory.</li>
 <li>Tests for verifying functionality of function Yuv420pSaveAsJpegToMemory.</li>
 <li>Tests for verifying functionality of function BgraToYuv420pV2.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/>
<h3 id="R109">January 3, 2022 (version 4.9.109)</h3> 
<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>Parameter Uyvy422ToBgr to function.</li>
 <li>SSE4.1, AVX2 optimizations of function Uyvy422ToBgr.</li>
 <li>Base implementation, SSE4.1, AVX2 optimizations of function Uyvy422ToYuv420p.</li>
 <li>Base implementation, SSE4.1, AVX2, AVX-512BW optimizations of function Base64Encode.</li>
 <li>Base implementation of function Base64Decode.</li>
</ul>
<h5>Improving</h5>
<ul>
 <li>AVX2 optimizations of class ResizerNearest for Bgr24, Uv16.</li>
</ul>
<h5>Renaming</h5>
<ul>
 <li>Function UyvyToBgr to Uyvy422ToBgr.</li>
</ul>

<h4>Test framework</h4>
<h5>New features</h5>
<ul>
 <li>Tests for verifying functionality of function Uyvy422ToYuv420p.</li>
 <li>Tests for verifying functionality of function Base64Encode.</li>
 <li>Tests for verifying functionality of function Base64Decode.</li>
</ul>

<h4>Documentation</h4>
<h5>Changes</h5>
<ul>
 <li>Update developers list.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/> 

<center>
 <a href="2022.html">2022</a> |
 <a href="2021.html">2021</a> |
 <a href="2020.html">2020</a> |
 <a href="2019.html">2019</a> |
 <a href="2018.html">2018</a> |
 <a href="2017.html">2017</a> |
 <a href="2016.html">2016</a> |
 <a href="2015.html">2015</a> |
 <a href="2014.html">2014</a> |
 <a href="2013.html">2013</a>
</center>

<hr/> 

</td> </tr> </table> </center> </body> </html>
